/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model.gestion_mouvement;

import model.util.Direction;
import model.util.Couleur;

/**
 *
 * @author ANNAS
 */
public interface ICase {
    /**
     * 
     * @param dir
     *      direction des cases voisines
     * @return
     *      les cases voisines
     * @throws Exception 
     */
    public ICase getVoisine(Direction dir) throws Exception;
    public Direction getDirectionVers(ICase c) throws Exception;
    
    /**
     * indique si la case a une piece
     * @return 
     *      vrai s'il y'a une piece
     *      faux sinon
     */
    public boolean hasPiece();
    
    /**
     * indique si la case est autorisé
     * @return 
     *      vrai si autorisé
     *      faux sinon
     */
    public boolean isCaseAutorise();
    
    /**
     * recupère la piece sur la case
     * @return
     *      La piece sur la case
     */
    public IPiece getPiece();
    
    /**
     * recupère la position x de la case
     * @return 
     *      position x de la case
     */
    public int getPositionX();
    
     /**
     * recupère la position y de la case
     * @return 
     *      position y de la case
     */
    public int getPositionY();
}
